package jm.nj.demo04mian.demo18;
/*
* 接口作为方法的参数返回值类型
* */
public class Demo {
    public static void main(String[] args) {
        mot(new MaQue());
        mot(new Ying());
        mot(new Fly() {
            @Override
            public void fly() {
                System.out.println("匿名内部类fly");
            }
        });
        System.out.println("----");
        /*
        * 调用获取Fly接口实现类的方法
        * Fly f = getFly(0):return new NaQue();--->Fly f = new MaQue();  多态
        * */

        Fly f = getFly(4152);
        f.fly();
    }

    private static Fly getFly(int i) {
        if(i==0){
            return new MaQue();
        }else if(i==1){
            return new Ying();
        }else{
            return new Fly() {
                @Override
                public void fly() {
                    System.out.println("匿名:都给老子fly");
                }
            };
        }
    }

    private static void mot(Fly f) {
        f.fly();
    }
}
